第10章 XPチーム全体
プロジェクトの成功の鍵は役割ごとの壁をなくして、全員が同じ目標に向かって進み続けること
テスター
システムレベルの自動テストの方法を記述を考えて顧客に支援したり、プログラマーにテスト技法を教えたりする
エラーパスのテストからもっと込み入ったテストの組みたてるのが得意
ログインが3回失敗するとどうなるか、など
システムレベルのテストは、ストーリーが実装された初めてデプロイの準備が整った時に成功するように書く
プログラマーがテストに行き詰まっていたら、ペアになって問題解決も行う
インタラクションデザイナー
デプロイされたシステム全体をみて次に実装するストーリーを決める人
ユーザーの課題解決を最重要の課題として動いていく
ペルソナなどはインタラクションデザイナーが分析するためのツールになる
顧客と一緒の動いてストーリーを明確にしていく
アーキテクト
大規模のリファクタリングや、アーキテクチャのストレス環境に負荷を与えるようなテスト書いて実装したりする
プログラマーと同じくタスクにアサインするが、アーキテクチャの変更をすることを視点におきながら開発を進める
小さいシステムであれば大きなアーキテクチャは必要ない、小さいアーキテクチャで設計する
システム分割もアーキテクトの仕事、独立した小さなシステムでシステムを拡張していくものアーキテクトの仕事
プロジェクトマネージャー
チーム内の顧客、サプライヤー、チーム外の組織とのコミュニケーションを円滑にする立場
プロジェクトの情報はよく変化するので、情報頻繁に正確に共有する必要がある
プロダクトマネージャー
ストーリーを書いたり、四半期サイクルのチームやストーリーを明確にしたり、週次サイクルでは行うストーリーを選択する
ストーリー実装後によって曖昧ない部分の質問に答えたりする
チームが多忙でプログラマーが対応できない場合、ストーリーの優先度を調整して適応していく
ストーリーの順番は開発の要望で判断するのでは、ビジネス側の視点や顧客への価値の視点で判断する
週の終わりには完全に終わるストーリーを選択しなければならない
顧客とプログラマーとのコミュニケーションも請け負う。顧客の課題をチーム全体に共有していく
経営幹部
XPチームに勇気、自身、説明責任が提供し、改善の監視、促進、円潤化に注視する必要がある
経営幹部はチームの意思決定に対して、明確な説明ができる必要がある
XPチームの健全性には二つの指標がある。この指標がチームの優秀さを表す
開発後の欠陥数
XPチームでは改善の結果、欠陥数をごくわずかまですることができる
投資回収期間
ソフトウェア開発の投資を得て、収益が発生するまでの期間
この期間が短ければ短いほどフィードバックの量やタイミングが改善される
テクニカルライター
XPチームにおいてマニュアルやウェブサイトの操作方法などをドキュメントを管理する人
テクニカルライターには二つの役割がある
最初にフィーチャーを目にするのがテクニカルライター。まだ記述方法などが決まっていない場合は、チーム全体で決めていけばいい
ユーザーとの関係を作り出せる
ユーザーがプロダクトを学習できたり、フィードバック(利用状況の監視など)を得ることができる
ユーザーが混乱しないような対策を用いてストーリーなども発掘できる
ドキュメントは仕様が変化するために変更をする必要がある
ストーリーが実装できたらドキュメントを作成するようにして、ストーリーができたタイミングでドキュメントを作成する
本当に必要はドキュメントのみを作成する。誰も見ないドキュメントは意味がない。
ユーザー
開発中のストーリーの選択の支援をしたり、意思決定をする。
類似したシステムに精通してたり、ユーザーコミュニティと関係があれば、そのユーザーは大事にしたほうがいい
プログラマー
ストーリー・タスクの見積もり、タスクの分解、テストを書いたり、フィーチャーを機能するコードをかいたり、開発プロセスを自動化したり、システムの設計を改善したりする
ペアプログラミングも行うため、社交性や人間関係のスキルも大事になる
人事
XPチームにおける人事評価が難しいと結果がある。それは、XPはチーム全員で価値を提供するため、個人の評価ができないという理由。
しかし、XPのおいて以下の価値を持っている従業員は評価が高いものと見なして問題ない
リスペクトを持って行動できる
他人とうまくやれる
イニシアチブをとれる
約束したものをデリバリーできる
人事評価の課題は三つの方法で解決できる
個人の評価はマネージャーに判断させて昇給させる
価値が提供できているチーム全体で昇給させる
上記二つのミックス
XPチームにおいてはスバ抜けたスキルのプログラマーと、社会性のあるプログラマーの場合、XPは常に社会性のあるプログラマーを採用する
役割
成熟したXPチームにおいて、固定の役割はなく常に不変なものになる
ただ最初は固定の役割を与えてもいいが、全員の最善を尽くす時の障壁になることがある。
ゆくゆくは複数の役割をこなして、チームに最善を尽くすこと目的とする必要がある